home *** CD-ROM | disk | FTP | other *** search
- ;
- ; disp: display the character in the high byte of A1 on the readout
- ;
- disp
- move #~($F<<7),x0 a,y1 ;save a, x0=mask
- ;
- ; copy in the low nibble
- ;
- movep x:m_pbd,a1 ;get b port contents
- and x0,a #$F<<7,x1 ;clear display nibble, x1=mask
- move y1,b ;get char
- rep #16-7 ;shift it down
- lsr b
- and x1,b ;mask nibble
- move b1,y0 ;and or it into b port
- or y0,a
- movep a1,x:m_pbd ;and write back b port
- ;
- ; write out to the display
- ;
- bclr #11,x:<<m_pbd ;strobe (setup=25, hold=25, pw=50)
- bset #11,x:<<m_pbd ;and negate
- ;
- ; copy in the high nibble
- ;
- and x0,a ;a has port b, clear nibble again
- move y1,b ;get char
- rep #16-7+4 ;shift down the high nibble
- lsr b
- and x1,b ;mask the nibble
- move b1,y0 ;and or into b data
- or y0,a
- movep a1,x:m_pbd ;write back to port
- ;
- ; write out to the display
- ;
- bclr #12,x:<<m_pbd ;assert the strobe
- bset #12,x:<<m_pbd ;and negate
- ;
- ; restore a and return
- ;
- move y1,a
- rts
-